/*
 * 文件名：ParkwellMemberService.java	 
 * 时     间：下午1:16:51
 * 作     者：Administrator       
 * 版     权： 2012-2022 湖南智软网络科技, 公司保留所有权利.
 * 联     系：http://www.073586.com/
 */
package com.local.service.face;

import java.util.Date;
import java.util.List;

import com.local.entity.report.MemberVo;
import com.local.entity.vo.PropertiesVo;
import com.local.model.LocalCarType;
import com.local.model.LocalCard;
import com.local.model.LocalMember;
import com.local.page.LocalMemberPage;
import com.local.page.report.LocalMemberVoPage;


/** 
 * 类描述:停车场会员
 * @ClassName: ParkwellMemberService 
 * @author Administrator
 * @date 2015年4月5日 下午1:16:51 
 */
public interface ParkwellMemberService
{
	/**
	 * 
	 * 方法描述：新建一个停车场会员
	 * @Title: saveOrUpdateParkwellMember 
	 * @param @return
	 * @return String
	 * @user Administrator
	 * 2015年4月5日
	 * @throws
	 */
	public String saveOrUpdateParkwellMember(LocalMember parkwellMember);
	
	/**
	 * 
	 * 方法描述：删除第三方会员信息
	 * @Title: deleteOtherMember 
	 * @param @param parkwellMember
	 * @param @return
	 * @return String
	 * @user Administrator
	 * 2016年1月5日
	 * @throws
	 */
	public void deleteOtherMember(String carNo);
	
	/**
	 * 
	 * 方法描述：保存或者更新第三方会员信息
	 * @Title: saveOtherMember 
	 * @param @param parkwellMember
	 * @param @return
	 * @return String
	 * @user Administrator
	 * 2016年1月5日
	 * @throws
	 */
	public String saveOrUpdateOtherMember(LocalMember parkwellMember);
	
	
	
	/**
	 * 
	 * 方法描述：查询会员列表
	 * @Title: findAllParkwellMemberByQueryForm 
	 * @param @param pageInfo
	 * @param @return
	 * @return List<ParkwellMember>
	 * @user Administrator
	 * 2015年4月5日
	 * @throws
	 */
	public List<LocalMember> findAllParkwellMemberByQueryForm(LocalMemberPage<LocalMember> pageInfo);
	

	/**
	 * 
	 * 方法描述：删除一条会员
	 * @Title: deleteByPrimaryKey 
	 * @param @param memberUuid
	 * @param @return
	 * @return Object
	 * @user Administrator
	 * 2015年4月7日
	 * @throws
	 */
	public Boolean deleteByPrimaryKey(String memberUuid);
	
	
	/**
	 * 
	 * 方法描述：通过车牌号码查询会员信息
	 * @Title: findParkwellMemberByCarNo 
	 * @param @param carNo
	 * @param @return
	 * @return ParkwellMember
	 * @user Administrator
	 * 2015年6月9日
	 * @throws
	 */
	public List<LocalMember> findParkwellMemberByCarNo(String carNo);



	/**
	 * 
	 * 方法描述：查询当前会员是否过期
	 * @Title: findCarNoIsMemberInPark 
	 * @param @param carNo
	 * @param @param happenTime
	 * @param @return
	 * @return List<LocalMember>
	 * @user PiChunhan
	 * 2015年7月10日
	 * @throws
	 */
	public List<LocalMember> findCarNoIsMemberInPark(String carNo,
			Date happenTime);
	
	/**
	 * 
	 * 方法描述：查询唯一会员信息
	 * @Title: selectByPrimaryKey 
	 * @param @param memberUuid
	 * @param @return
	 * @return Object
	 * @user Administrator
	 * 2015年4月7日
	 * @throws
	 */
	public Object selectByPrimaryKey(String memberUuid);
	
	public List<LocalCard> queryAllCard();
	
	public List<LocalCarType> queryAllCar();
	
	/**
	 * 
	 * 方法描述：加载ProperTies文件到Vo
	 * @Title: localProperties 
	 * @param @return
	 * @return PropertiesVo
	 * @user Administrator
	 * 2016年3月9日
	 * @throws
	 */
	public PropertiesVo localProperties(String typeProperties);
	
	/**
	 * 
	 * 方法描述：更改Properties配置文件
	 * @Title: updateProperties 
	 * @param @param propertiesVo
	 * @return void
	 * @user Administrator
	 * 2016年3月10日
	 * @throws
	 */
	public void updateProperties(PropertiesVo propertiesVo);
	
	/**
	 * 
	 * 方法描述：计算，会员有效前（出场收费的时间）
	 * @Title: countCarOutTime 
	 * @param @param localMember
	 * @param @return
	 * @return Date
	 * @user Administrator
	 * 2016年4月6日
	 * @throws
	 */
	public Date countCarOutTime(Date carInTime,Date localMemberStartTime);
	
	
	/**
	 * 查询会员报表
	 * @return
	 */
	public MemberVo queryMemberReport(LocalMemberVoPage<MemberVo> pageInfo);
	
	/**
	 * 
	 * 方法描述：查询会员报表详情
	 * @Title: queryMemberReportDetails 
	 * @param @param pageInfo
	 * @param @return
	 * @return List<ParkwellMember>
	 * @user zhangw
	 * 2015年4月5日
	 * @throws
	 */
	public List<LocalMember> queryMemberReportDetails(LocalMemberPage<LocalMember> pageInfo);
}
		